<?php

    /*
Autor: Jonathan Vindas Abarca
Fecha: 21/11/2012
Descripción: Este archivo contiene la declaración de funciones para obtener datos de la tabla de clientes
de la base de datos SQL Server.
Bitacora de modificaciones:
<
    Autor: 
    Fecha: 
    Descripción: 
>
*/
    /*
    Funcion para agregar un cliente
    Procedimiento almacenado Listo
    */
    function agregarClientes($codigoCliente,$codigoCompania,$nombreCliente,$direccionEnvio,$direccionPuerto)
    {        
        require_once '../FirePHPCore/FirePHP.class.php';                    
        require_once 'dataModelo.php';
        $firephp = FirePHP::getInstance(true);                        
        $conexion=conexion();
        $insert="Insert into Clientes (CodigoCliente,codigoCompania, nombreCliente, direccionEnvio, direccionPuerto)
         values('$codigoCliente','$codigoCompania','$nombreCliente','$direccionEnvio','$direccionPuerto')";        
        $firephp->log($insert, 'sentencia sql');
        //$insert="exec SP001AgregarPrecio '$Embalaje','$Precio','$Localidad'";
        if (!odbc_exec($conexion,$insert))
        {
            die('Error: ' . odbc_error());
        }
        odbc_close($conexion);
    }
    
    /*
    Funcion para modificar un cliente
    Procedimiento almacenado Listo
    */
    function modificarClienteModelo($codigoCliente,$codigoCompania,$nombreCliente,$direccionEnvio,$direccionPuerto)
    {
        require_once 'dataModelo.php';
       $conexion=conexion();
       $update="update clientes set nombreCliente='".$nombreCliente."',direccionEnvio='".$direccionEnvio."' , direccionPuerto='".$direccionPuerto."' where  codigoCliente='".$codigoCliente."' and codigoCompania='".$codigoCompania."'";
       //$update="exec SP002ModificarPrecio '$embalaje','$precio','$localidad'";
       if (!odbc_exec($conexion,$update))
       {
            die('Error: ' . odbc_error());
       }
       odbc_close($conexion);
    }
        
    /*
    Funcion para eliminar un cliente determinado
    Procedimiento almacenado Listo
    */
    function eliminarClienteModelo($codigoCliente, $codigoCompania)
    {
        require_once 'dataModelo.php';
        $conexion=conexion();
        $update="DELETE FROM Clientes WHERE codigoCliente = '$codigoCliente' AND codigoCompania = '$codigoCompania'";
        //$update="exec SP003EliminarPrecioControlador '$Embalaje','$localidad'";
        if (!odbc_exec($conexion,$update))
        {
            die('Error: ' . odbc_error());
        }
        odbc_close($conexion);
        
    }
    
    /*
    Funcion para buscar todos los clientes
    Procedimiento almacenado Listo
    */    
    function buscarClientes()
    {
        require_once 'dataModelo.php';
        $conexion=conexion();
                     
        $select='select cl.codigoCliente, cl.codigoCompania,cl.nombreCliente,cl.direccionEnvio,cl.direccionPuerto, dat.name    from clientes cl
        inner join NumarTest.dbo.Dataarea dat
        on cl.codigoCompania=dat.ID';
        $rs = odbc_exec($conexion,$select);
        $items=Array();
            while (odbc_fetch_row($rs)){
                $item['codigoCliente']=odbc_result($rs,"codigoCliente");
                $item['nombreCliente']=odbc_result($rs,"nombreCliente");
                $item['codigoCompania']=odbc_result($rs,"codigoCompania");
                $item['name']=odbc_result($rs,"name");
                $item['direccionEnvio']=odbc_result($rs,"direccionEnvio");
                $item['direccionPuerto']=odbc_result($rs,"direccionPuerto");                
                array_push($items,$item);
            }
        odbc_close($conexion);
        return $items;
    }
    
    /*
    Funcion para encontrar repetidos, retorna true si existe un registro 
    con el mismo cliente
    Procecimiento Almacenado Listo
    */    
    function encontrarClienteDuplicado($codigoCliente, $codigoCompania)
    {      
       require_once 'dataModelo.php';       
       $existe=false;
       $conexion=conexion();       
       //$rs = odbc_exec($conexion,  "select Embalaje, Localidad from precios where Embalaje='".$tipoEmbalaje."' and Localidad='".$localidad."'");       
       $select="SELECT codigoCliente, codigoCompania,nombreCliente,direccionEnvio, direccionPuerto FROM clientes 
	where codigoCliente=$codigoCliente and codigoCompania=$codigoCompania";       
       $rs = odbc_exec($conexion,$select);       
       if (!$conexion) 
       {           
           exit( "Error al conectar: " . $conexion);
       }
       else
       {           
           $existe=odbc_fetch_row($rs);             
       }
       odbc_close($conexion);
       return $existe;
    }
    
        /*
    Funcion para buscar los clientes segun la compania
    Procedimiento Almacenado Listo
     */
    function buscarClientesSegunCompaniaModelo($codigoCompania)    
    {
        require_once 'dataModelo.php';
        $conexion=conexion();        
        $select="exec SP006BuscarClientesSegunCompania '$codigoCompania'";                
        $rs = odbc_exec($conexion,$select);
        $items=Array();
            while (odbc_fetch_row($rs)){
                $item['codigoCliente']=odbc_result($rs,"codigoCliente");
                $item['nombreCliente']=odbc_result($rs,"nombreCliente");
                $item['codigoCompania']=odbc_result($rs,"codigoCompania");
                $item['direccionEnvio']=odbc_result($rs,"direccionEnvio");
                $item['direccionPuerto']=odbc_result($rs,"direccionPuerto");                
                $item['name']=odbc_result($rs,"name");                
                array_push($items,$item);
            }
        odbc_close($conexion);
        return $items;
    }
    
    /*
    Funcion para validad la existencia de contratos asociados a un cliente
    Procedimiento almacenado Listo
    */
    function validarExisteDependeciaContratoConCliente($codigoCliente, $codigoCompania)
    {
        //select codigoContrato, codigoCliente, codigoCompania from Contratos where codigoCliente='00019' and codigoCompania='006'
        require_once 'dataModelo.php';
       $conexion=conexion();
       $existe=false;
       $conexion=conexion();       
       //$rs = odbc_exec($conexion,  "select Embalaje, Localidad from precios where Embalaje='".$tipoEmbalaje."' and Localidad='".$localidad."'");       
       $select="select codigoContrato, codigoCliente, codigoCompania from Contratos where codigoCliente='$codigoCliente' and codigoCompania='$codigoCompania'";       
       $rs = odbc_exec($conexion,$select);       
       if (!$conexion) 
       {           
           exit( "Error al conectar: " . $conexion);
       }
       else
       {           
           $existe=odbc_fetch_row($rs);             
       }
       odbc_close($conexion);
       return $existe;
    }
    
    /*
    Funcion para buscar los clientes segun la compania
    Procedimiento Almacenado Listo
     */
    function buscarClientesPorCompaniaModelo($codigoCompania)
    {
        require_once 'dataModelo.php';
        $conexion=  conexion();
        $select="select codigoCliente, nombreCliente from Clientes where codigoCompania='$codigoCompania'";
        //$rs = odbc_exec($conexion, "SELECT CodEmbalaje,Tipo FROM embalajes");
        $rs = odbc_exec($conexion, $select);
        $items=Array();
        while (odbc_fetch_row($rs))
        {
            $item['codigoCliente']=odbc_result($rs,"codigoCliente");            
            $item['nombreCliente']=odbc_result($rs,"nombreCliente");            
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items; 
    }
        
    /*
    Funcion para buscar todos los codigos y nombres de los clientes
    Procedimiento almacenado Listo
    */
    function buscarTodosCodigosNombresClientes()
    {
        require_once 'dataModelo.php';
        $conexion=  conexion();
        $select="select codigoCliente, nombreCliente from clientes";
        //$rs = odbc_exec($conexion, "SELECT CodEmbalaje,Tipo FROM embalajes");
        $rs = odbc_exec($conexion, $select);
        $items=Array();
        while (odbc_fetch_row($rs))
        {
            $item['codigoCliente']=odbc_result($rs,"codigoCliente");            
            $item['nombreCliente']=odbc_result($rs,"nombreCliente");            
            array_push($items,$item);
        }
        odbc_close($conexion);
        return $items;
    }
    /*Con este metodo se verifica que el nombre del cliente y el numero correspondan a lo ingresado en la BD del Dynamics*/
    function buscarClienteDynamicsAX($codigoCliente, $codigoCompania, $nombreCliente)
    {
        require_once '../modelos/dataModelo.php';     
        require_once '../modelos/clientesModelo.php';                
        require_once '../FirePHPCore/FirePHP.class.php';                    
        $existe=false;
        $conexion=conexion_AX();       
        $select="select name from CUSTTABLE where  accountnum='$codigoCliente' and name='$nombreCliente' and DATAAREAID='$codigoCompania'";       
       $rs = odbc_exec($conexion,$select);       
       if (!$conexion) 
       {           
           exit( "Error al conectar: " . $conexion);
       }
       else
       {           
           $existe=odbc_fetch_row($rs);             
       }
       $firephp->log($existe,"existencia");
       //odbc_close($conexion);               
        return $existe;
    }
?>
